/*!
 * Flow Slider jQuery Plugin v0.1.beta
 * http://FlowSlider.com/
 *
 * Copyright 2011 www.FlowSlider.com
 * 
 * LICENCE:
 * http://www.FlowSlider.com/licence.html
 * If you use this plugin, you must keep this copyright notice at all times.
 * 
 */
var FlowSlider=function(h,Q,j){var F="function",v="flowSliderMoveStop",u="flowSliderMove",t="flowSliderMoveStart",y="px",s="mousemove",i=this;if("string"===typeof h)return new FlowSlider.Array(jQuery(h));if("object"===typeof h&&h.FlowSlider)return h.FlowSlider;if("array"===typeof h)return new FlowSlider.Array(h);var f,b,k,o,z,p,A,m,l,n,w,G,c,g,B=0,I,x,d=true,C=false,H=false,a=j.extend({},window.FlowSlider.defaults,Q);i.position=function(a){if(void 0===a)return p;D(a);E();return this};i.offset=function(a){if(void 0===a)return c;q(a);E();return this};i.calculateWidth=function(){J();return this};i.setupDOM=function(){K();return this};i.set=function(b){j.extend(a,b);return this};i.start=function(){H=true;E();return this};i.stop=function(){H=false;r();return this};i.forceStop=function(){g=c;this.stop();return this};var K=function(){o=k.children();o.addClass(a.prefix+"-item");a.setCSS&&(j(b[0]).css({overflow:"hidden",position:"relative"}),j(k[0]).css({position:"absolute"}),j(o).css({"float":"left"}));J();if(!parseInt(b.css("height"))){for(var f=o.length,c=0,d=0,e=0;e<f;e++)$item=j(o[e]),d=parseInt($item.css("margin-top"))+parseInt($item.outerHeight())+parseInt($item.css("margin-bottom")),d>c&&(c=d);b.css("height",c)}},J=function(){z=0;for(var c=o.length,b=0,a=0;a<c;a++)$item=j(o[a]),b=parseInt($item.css("margin-left"))+parseInt($item.outerWidth())+parseInt($item.css("margin-right")),z+=b;k.css("width",z)},q=function(d){var c=b.width();(!(z<=c)||a.moveIfSmaller)&&D((d-a.mouseLeft)/(c-a.mouseLeft-a.mouseRight))},E=function(){if(!C&&H){switch(a.transition){case"elastic":L();x=setInterval(L,a.frequency);break;case"none":M();x=setInterval(M,a.frequency);break;case"constant":N();x=setInterval(N,a.frequency);break;case"accelerating":O();x=setInterval(O,a.frequency);break;default:P(),x=setInterval(P,a.frequency)}C=true;b.one("mouseleave",function(){r()})}},r=function(){C&&d&&(clearInterval(x),C=false,b.one(s,function(a){q(a.clientX-b.offset().left);E()}))},D=function(c){p=c;0>p&&(p=0);1<p&&(p=1);c=b.width();g=Math.round(a.marginLeft-(a.marginLeft-(c-z-a.marginRight))*p)},M=function(){b.one(s,function(a){q(a.clientX-b.offset().left)});c!=g?(c=g,k[0].style.left=c+y,d&&(d=false,b.trigger(t,f)),b.trigger(u,f)):(d||(b.trigger(v,f),d=true),r())},N=function(){b.one(s,function(a){q(a.clientX-b.offset().left)});var e=g-c;if(0<e&&e>a.speed)e=a.speed;0>e&&-e>a.speed&&(e=-a.speed);e?(c+=e,k[0].style.left=c+y,d&&(d=false,b.trigger(t,f)),b.trigger(u,f)):(d||(b.trigger(v,f),d=true),r())},e=0,O=function(){b.one(s,function(a){q(a.clientX-b.offset().left)});var h=g-c;if(h){d&&(e=0<h?a.acceleration:-a.acceleration);if(a.deceleration){var i=Math.floor(Math.abs(e)/a.deceleration);e=(i*i+i)*a.deceleration/2>=Math.abs(h)?e-(0<h?a.deceleration:-a.deceleration):e+(0<h?a.acceleration:-a.acceleration)}0>h&&0<e&&(e=-a.acceleration);if(0<h&&0>e)e=a.acceleration;if(e>a.speed)e=a.speed;e<-a.speed&&(e=-a.speed);0<h&&e>h&&(e=h);0>h&&e<h&&(e=h);c+=e;k[0].style.left=c+y;d&&(d=false,b.trigger(t,f));b.trigger(u,f)}else d||(b.trigger(v,f),d=true),r()},L=function(){b.one(s,function(a){q(a.clientX-b.offset().left)});var e=(g-c)*a.elasticity,h=1>Math.abs(e);g!=c&&(!h||a.snap)?(c=h?g:c+Math.round(e),k[0].style.left=c+y,d&&(d=false,b.trigger(t,f)),b.trigger(u,f)):(d||(b.trigger(v,f),d=true),r())},P=function(){b.one(s,function(a){q(a.clientX-b.offset().left)});m=+new Date;I!=g&&(l>m?(l=m+n+20*Math.abs(B),A=m-a.frequency):(l=m+20*Math.abs(B),A=m-a.frequency/2,b.trigger(t,f),d=false),n=l-A,2200<n&&(n=2200,l=A+n),350>n&&(n=350,l=A+l),G=c,B=g-G);w=1-(l-m)/n;1<w&&(w=1);0>w&&(w=0);c==g&&m>l?(d||(b.trigger(v,f),d=true),r()):(c=G+B*a.transition(w),k[0].style.left=c+y,I=g,b.trigger(u,f))};f=i;b=j(h);F===typeof a.onMoveStop&&b.bind(v,a.onMoveStop);F===typeof a.onMoveStart&&b.bind(t,a.onMoveStart);F===typeof a.onMove&&b.bind(u,a.onMove);h=a.prefix+"-wrap";b.wrapInner('<div class="'+h+'"/>');k=j(b.children("."+h)[0]);b.addClass(a.prefix);K();D(a.startPosition);c=g;i.start();D(a.position)};FlowSlider.Array=function(b){for(var c="position,offset,calculateWidth,setupDOM,set,start,stop,forceStop".split(","),d=this,a=0;a<c.length;a++)(function(a){d[a]=function(){for(;0<b.length;){var c=b[0].FlowSlider[a],c=c.apply(c,arguments);return void 0!==c?c:d}}})(c[a]);return this};FlowSlider.defaults={prefix:"www_FlowSlider_com",mode:"horizontal",transition:"elastic",setCSS:true,mouseLeft:50,mouseRight:50,marginLeft:25,marginRight:25,startPosition:0,position:.5,frequency:50,elasticity:.25,speed:10,acceleration:2,deceleration:1,snap:false,moveIfSmaller:false,onMoveStart:null,onMoveStop:null,onMove:null};FlowSlider.transition={none:function(){return 1},linear:function(a){return a},quadratic:function(a){var b=a*a;return a*(-b*a+4*b-6*a+4)},cubic:function(a){return a*(4*a*a-9*a+6)},elastic:function(a){var b=a*a;return a*(33*b*b-106*b*a+126*b-67*a+15)}};(function(a){a.fn.FlowSlider=function(b){return this.each(function(d,c){if(!c.FlowSlider)c.FlowSlider=new FlowSlider(c,b,a)})}})(jQuery);

